/**
 *	@file	bc_app.h
 *	@brief	ボングリケース　アプリヘッダ
 *	@author	Miyuki Iwasawa
 *	@date	08.08.04
 */

#ifndef __H_BC_APP_H__
#define __H_BC_APP_H__

#include "bc_app_def.h"
#include "system/wordset.h"
#include "system/selbox.h"
#include "system/touch_subwindow.h"
#include "system/pm_rtc.h"
#include "savedata/bonguri.h"

typedef struct _BC_MSG{
	MSGDATA_MANAGER *man;

	WORDSET* wset;		///<ワーク
	STRBUF	*tmp;		///<汎用
	STRBUF	*str;		///<汎用
	STRBUF	*close;		///<とじる
	STRBUF	*listbuf;	///<やめる
	STRBUF	*num_buf;	///<やめる
	STRBUF	*exp[MIDX_EXP_MAX];	///<各種説明文
	STRBUF	*bong[MIDX_EXP_MAX];	///<ぼんぐり名

#ifdef PM_DEBUG
//	STRBUF	*deb[DMIDX_MAX];
#endif	//PM_DEBUG
}BC_MSG;

typedef struct _BC_BONGURI{
	u8	juice_rest;
	u8	taste;
	u8	mild;
	u8	juice_col;
	u8	stock_num;
	u8	pot_state;
	u8	num[BONG_COL_MAX];

	BONG_JUICE	juice;	//現在のジュースパラメータ
	BONGJUICE_FLAVOR	flavor;
}BC_BONGURI;

typedef struct _BC_APPWORK{
	int	heapID;
//	BONGCASE_PARAM* param;
	BC_SYSWORK*	sp;

	SAVEDATA* save;
	MYITEM*		item_sv;

	BONGURI_SAVE* bong_sv;
	BC_BONGURI	bong;
	u32			now_walk_ct;	///<現在の歩数

	u16	seq;
	u16	sub_seq;
	int	key_mode;
	u8	mode;	///<アプリの呼び出しモード

	u8	msg_spd;
	u8	win_type;
	u8	msg_idx;

	u8	next_seq;
	u8	cpos_x;
	u8	cpos_y;
	u8	opos_a;
	u8	opos_b;
	u8	target;
	u8	sel_num;
	u8	sel_max;

	u8	eff_tcb_ct;	//エフェクトタスクカウンタ(0なら起動していない)
	u8	ct;			//汎用カウンタ
	u8	wait;		//汎用ウェイトカウンタ

	u8	pot_open_f;

	GF_BGL_INI *bgl;	///<BGLデータ
	SELBOX_SYS			*sbox;

	BC_MSG				msg;		///<メッセージデータ

	GF_BGL_BMPWIN		win[WIN_MAX];	///<Bmpウィンドウ
	TOUCH_SW_SYS		*ynbtn_wk;	///<YesNoボタンワーク

	CATS_SYS_PTR	pActSys;	///<セルアクターシステム
	CATS_RES_PTR	pActRes;	///<セルアクターリソース

	CLACT_WORK_PTR		pAct[BONGCASE_ACTMAX];		///<アクター

	ARCHANDLE* grap_h;

	BMPLIST_DATA*	slist;	///<選択ボックスリスト
	SELBOX_WORK*	list_wk;	///<選択ボックスワーク

#ifdef PM_DEBUG
	GF_BGL_BMPWIN	deb_win[DEB_WIN_MAX];
	u8				deb_ct;
	u8				deb_time_rate;
	u8				deb_print;
#endif	//PM_DEBUG
}BC_APPWORK;


extern PROC_RESULT BongCaseProc_Init(PROC* proc,int* seq);
extern PROC_RESULT BongCaseProc_Main(PROC* proc,int* seq);
extern PROC_RESULT BongCaseProc_End(PROC* proc,int* seq);




#endif	//__H_BC_APP_H__
